// !function (e) {
//     // 存放加载器
//     var c = {}
//
//     // t是加载器对应的名字
//     function n(t) {
//         // 创建一个a对象
//         var a = c[t] = {
//             i: t, // 表示模块的标识符，它被设置为参数 t。
//             l: !1, // 一个布尔值，初始值为 false，用于标记模块是否已经加载。
//             exports: {} // 一个空对象，用于将模块的导出内容存储在其中。
//         };
//         console.log(a)
//         // 执行函数里面的方法
//         return e[t].call(a.exports, a, a.exports, n),
//             // 设置模块已被加载
//             a.l = !0,
//             a.exports
//     }
//
//     //
//     n.m = e
//     // 入口
//     n(2)
// }([])

!function (e) {
    // 加载器
    function n(t) {
        return e[t].call()
    }

    // 执行入口（执行模块列表中的下标为0的方法）
    // n(0)
    // 当模块中是对象的时候，可以传递对象名来调用对应的方法
    n(0)
}(
    // 方法列表
    // 模块/插件
    // [
    //     function(){
    //         console.log('0')
    //     },
    //     function(){
    //         console.log('1')
    //     },
    //     function(){
    //         console.log('2')
    //
    //     }
    // ]
    {
        'aa': function () {
            console.log('aa')
        },
        'bb': function () {
            console.log('bb')
        },
        'cc': function () {
            console.log('cc')
        }
    },
    [
        function () {
            console.log('0')
        },
        function () {
            console.log('1')
        },
        function () {
            console.log('2')
        }
    ]
)
